//
//  MainTabBar.swift
//  sinaWeibo
//
//  Created by 浅爱 on 16/3/9.
//  Copyright © 2016年 y. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {
    
    
    override init(frame: CGRect) {
        
        
        super.init(frame: frame)
        
        // 在这里添加子视图不会有添加两次的感觉
        addSubview(plusBtn)
        
    }

    // 从xib/sb中加载子视图会调用这个方法
    // 在swift中，如果实现了默认的构造函数，编译器会认为该控件只支持手写代码创建
    // 如果从xib中加载视图，程序会崩溃
    required init?(coder aDecoder: NSCoder) {
        
        // fatal(致命的) 默认实现报错， 可以注销默认报错的代码，让当前控件支持从xib/sb中加载
//        fatalError("init(coder:) has not been implemented")
        super.init(coder: aDecoder)
        
        
    }
    
    
    // 自定义每一个tabBarButton的位置
    // addSubview 调用
    // 子控件的frame发生改变 调用
    // 不建议在layoutSubviews中添加子视图
    override func layoutSubviews() {
        
        super.layoutSubviews()
        
        let w = UIScreen.mainScreen().bounds.width / 5
        
        let h = self.bounds.height
        
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        
        
        var index: CGFloat = 0
        
        for subview in subviews {
        
            if subview .isKindOfClass(NSClassFromString("UITabBarButton")!) {
            
                // 修改frame
                subview.frame = CGRectOffset(rect, index * w, 0)
                
                index += (index == 1 ? 2 : 1)
            
            }
        
        }
        
        plusBtn.frame = CGRectOffset(rect, w * 2, 0)
        
    }

    
    lazy var plusBtn: UIButton = UIFactory.buttonWithImage("tabbar_compose_icon_add", backImageName: "tabbar_compose_button")
    
}
